CentOS on Amazon EC2 でディスクサイズ変更しても変わらないときの対処方法
こんにちは、梶です。
AWS MarketplaceのCentOS 6 (x86_64) - with Updates HVMから、Tokyoリージョンで新規インスタンスをlaunchする際に、ディスクサイズを20GBで指定しましたが、OS側の認識がデフォルトの8GBのままなので対応方法を公開いたします。小ネタです。
パーテーションサイズが変更されていないのはわかったのですが、別インスタンスにVolumeをAttachしてパーテーションサイズを修正しようとしてもダメだったりして、かなりハマりましたので誰かのお役に立てたら光栄です。
以下のブログの構築した際、ディスクサイズ変更で問題が発生し調査することになりました。 AWSでのBacklogエンタープライズサーバの構築
事象
launch後のdfコマンドでは以下の結果となります。 (20GBで指定しても、8GBのまま)
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.8G 836M 6.6G 12% / tmpfs 498M 0 498M 0% /dev/shm
fdiskでは20GBを認識済み。
# fdisk -l ディスク /dev/xvda: 21.5 GB, 21474836480 バイト ヘッド 255, セクタ 63, シリンダ 2610 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00098461 デバイス ブート 始点 終点 ブロック Id システム /dev/xvda1 * 1 1045 8387584 83 Linux # # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 20G 0 disk └─xvda1 202:1 0 8G 0 part /
対処方法
EPEL より dracut-modules-growroot をインストールする
起動時にルートパーテーションテーブルをリサイズするdracut-modules-growrootをインストールします。
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # rpm -i epel-release-6-8.noarch.rpm # yum -y --quiet install dracut-modules-growroot
インストール完了後、下記コマンドで dracut-modules-growroot が正常にインストールされたことを確認する
# rpm -qa | grep grow cloud-utils-growpart-0.27-10.el6.x86_64 dracut-modules-growroot-0.20-2.el6.noarch
ルートパーテーションテーブルをリサイズするよう実行
# dracut --force --add growroot /boot/initramfs-$(uname -r).img #
再起動
# shutdown -r now
再起動後の確認 ここではまだ変更されてない。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.8G 982M 6.4G 14% / tmpfs 498M 0 498M 0% /dev/shm # # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 20G 0 disk └─xvda1 202:1 0 20G 0 part /
resize2fsを実行して変更されていることを確認
# resize2fs /dev/xvda1 resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/xvda1 is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 2 Performing an on-line resize of /dev/xvda1 to 5240950 (4k) blocks. The filesystem on /dev/xvda1 is now 5240950 blocks long. # df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 20G 986M 18G 6% / tmpfs 498M 0 498M 0% /dev/shm #
感想
Amazon Linuxや、RHELにはdracut-modules-growrootが最初からインストールされているため、このような問題は発生しないようです。 CentOSで構築する際には、後でディスクサイズ変更しても良いようにdracut-modules-growrootをインストールしておいたほうが良いと思いました。